﻿namespace Shumisen.Core.Composition.Aop
{
	public abstract class AroundInterceptor : IInterceptor
	{
		public void Intercept(IInvocation invocation)
		{
			PreIntercept(invocation);
			invocation.Proceed();
			PostIntercept(invocation);
		}

		protected virtual void PreIntercept(IInvocation invocation)
		{
		}

		protected virtual void PostIntercept(IInvocation invocation)
		{
		}
	}
}